modbus-connect
Version:
Modbus RTU over Web Serial and Node.js SerialPort
81 lines (68 loc) • 2.86 kB
TypeScript
// src/transport/node-transports/node-serialport.d.ts
import {
Transport,
NodeSerialTransportOptions,
DeviceStateHandler,
PortStateHandler,
ConnectionErrorType,
RSMode,
} from '../../types/modbus-types.js';
declare class NodeSerialTransport implements Transport {
/**
* Показывает, открыт ли порт в данный момент.
*/
public isOpen: boolean;
/**
* @param port Путь к последовательному порту (например, '/dev/ttyUSB0' или 'COM1')
* @param options Настройки транспорта
*/
constructor(port: string, options?: NodeSerialTransportOptions);
// === Основные методы транспорта ===
connect(): Promise<void>;
disconnect(): Promise<void>;
write(buffer: Uint8Array): Promise<void>;
read(length: number, timeout?: number): Promise<Uint8Array>;
flush(): Promise<void>;
destroy(): void;
/**
* Возвращает режим работы транспорта (RS485 или RS232).
*/
getRSMode(): RSMode;
// === Обработчики состояния ===
/**
* Установить обработчик изменения состояния устройства (slave).
* Вызывается при подключении/отключении каждого устройства.
*/
setDeviceStateHandler(handler: DeviceStateHandler): void;
/**
* Установить обработчик изменения состояния физического порта.
*/
setPortStateHandler(handler: PortStateHandler): void;
// === Управление трекингом устройств ===
/**
* Отключить уведомления о состоянии устройств.
* После вызова `setDeviceStateHandler` перестанет работать.
*/
disableDeviceTracking(): Promise<void>;
/**
* Включить трекинг устройств (если был отключён).
* @param handler Опционально: установить новый обработчик сразу
*/
enableDeviceTracking(handler?: DeviceStateHandler): Promise<void>;
// === Внутренние уведомления (для ModbusClient) ===
/**
* Уведомить транспорт о подключении устройства.
* Используется ModbusClient при успешном ответе.
*/
notifyDeviceConnected(slaveId: number): void;
/**
* Уведомить транспорт об отключении устройства.
* Используется при таймаутах, ошибках и т.д.
*/
notifyDeviceDisconnected(
slaveId: number,
errorType: ConnectionErrorType,
errorMessage: string
): void;
}
export = NodeSerialTransport;