njs-modbus
Version:
A pure JavaScript implemetation of Modbus for NodeJS.
82 lines (81 loc) • 4.42 kB
TypeScript
import type { AbstractApplicationLayer } from '../layers/application';
import type { AbstractPhysicalLayer } from '../layers/physical';
import type { DeviceIdentification, ServerId } from '../types';
import EventEmitter from 'node:events';
interface ModbusMasterEvents {
error: [error: Error];
close: [];
}
interface ReturnValue<T> {
transaction?: number;
unit: number;
fc: number;
data: T;
buffer: Buffer;
}
export declare class ModbusMaster<A extends AbstractApplicationLayer, P extends AbstractPhysicalLayer> extends EventEmitter<ModbusMasterEvents> {
private applicationLayer;
private physicalLayer;
timeout: number;
get isOpen(): boolean;
get destroyed(): boolean;
constructor(applicationLayer: A, physicalLayer: P, timeout?: number);
private waitResponse;
private writeFC1Or2;
writeFC1: this['readCoils'];
readCoils(unit: 0, address: number, length: number, timeout?: number): Promise<void>;
readCoils(unit: number, address: number, length: number, timeout?: number): Promise<ReturnValue<boolean[]>>;
writeFC2: this['readDiscreteInputs'];
readDiscreteInputs(unit: 0, address: number, length: number, timeout?: number): Promise<void>;
readDiscreteInputs(unit: number, address: number, length: number, timeout?: number): Promise<ReturnValue<boolean[]>>;
private writeFC3Or4;
writeFC3: this['readHoldingRegisters'];
readHoldingRegisters(unit: 0, address: number, length: number, timeout?: number): Promise<void>;
readHoldingRegisters(unit: number, address: number, length: number, timeout?: number): Promise<ReturnValue<number[]>>;
writeFC4: this['readInputRegisters'];
readInputRegisters(unit: 0, address: number, length: number, timeout?: number): Promise<void>;
readInputRegisters(unit: number, address: number, length: number, timeout?: number): Promise<ReturnValue<number[]>>;
writeFC5: this['writeSingleCoil'];
writeSingleCoil(unit: 0, address: number, value: boolean, timeout?: number): Promise<void>;
writeSingleCoil(unit: number, address: number, value: boolean, timeout?: number): Promise<ReturnValue<boolean>>;
writeFC6: this['writeSingleRegister'];
writeSingleRegister(unit: 0, address: number, value: number, timeout?: number): Promise<void>;
writeSingleRegister(unit: number, address: number, value: number, timeout?: number): Promise<ReturnValue<number>>;
writeFC15: this['writeMultipleCoils'];
writeMultipleCoils(unit: 0, address: number, value: boolean[], timeout?: number): Promise<void>;
writeMultipleCoils(unit: number, address: number, value: boolean[], timeout?: number): Promise<ReturnValue<boolean[]>>;
writeFC16: this['writeMultipleRegisters'];
writeMultipleRegisters(unit: 0, address: number, value: number[], timeout?: number): Promise<void>;
writeMultipleRegisters(unit: number, address: number, value: number[], timeout?: number): Promise<ReturnValue<number[]>>;
handleFC17: this['reportServerId'];
reportServerId(unit: 0, timeout?: number): Promise<void>;
reportServerId(unit: number, timeout?: number): Promise<ReturnValue<ServerId>>;
handleFC22: this['maskWriteRegister'];
maskWriteRegister(unit: 0, address: number, andMask: number, orMask: number, timeout?: number): Promise<void>;
maskWriteRegister(unit: number, address: number, andMask: number, orMask: number, timeout?: number): Promise<ReturnValue<{
andMask: number;
orMask: number;
}>>;
handleFC23: this['readAndWriteMultipleRegisters'];
readAndWriteMultipleRegisters(unit: 0, read: {
address: number;
length: number;
}, write: {
address: number;
value: number[];
}, timeout?: number): Promise<void>;
readAndWriteMultipleRegisters(unit: number, read: {
address: number;
length: number;
}, write: {
address: number;
value: number[];
}, timeout?: number): Promise<ReturnValue<number[]>>;
handleFC43_14: this['readDeviceIdentification'];
readDeviceIdentification(unit: 0, readDeviceIDCode: number, objectId: number, timeout?: number): Promise<void>;
readDeviceIdentification(unit: number, readDeviceIDCode: number, objectId: number, timeout?: number): Promise<ReturnValue<DeviceIdentification>>;
open(...args: Parameters<P['open']>): Promise<void>;
close(): Promise<void>;
destroy(): Promise<void>;
}
export {};