@zandor300/jsmodbus
Version:
Implementation for the Serial/TCP Modbus protocol.
33 lines • 1.55 kB
TypeScript
import ModbusAbstractRequest from './abstract-request';
import { RequestToResponse } from './request-response-map';
import ModbusRTURequest from './rtu-request';
import ModbusTCPRequest from './tcp-request';
import { UserRequestError } from './user-request-error';
import { UserRequestMetrics } from './user-request-metrics';
export type ModbusRequest = ModbusTCPRequest | ModbusRTURequest;
export interface IUserRequestResolve<Req extends ModbusAbstractRequest> {
metrics: UserRequestMetrics;
request: Req;
response: RequestToResponse<Req>;
}
export type PromiseUserRequest<Req extends ModbusAbstractRequest> = Promise<IUserRequestResolve<Req>>;
export default class UserRequest<Req extends ModbusAbstractRequest = any> {
protected readonly _request: Req;
protected readonly _timeout: number;
protected readonly _promise: PromiseUserRequest<Req>;
protected _resolve: (value: IUserRequestResolve<Req>) => void;
protected _reject: (err: UserRequestError<RequestToResponse<Req>, Req>) => void;
protected _timer: NodeJS.Timeout;
protected _metrics: UserRequestMetrics;
constructor(request: Req, timeout?: number);
createPayload(): Buffer;
start(cb: () => void): void;
get metrics(): UserRequestMetrics;
done(): void;
get request(): Req;
get timeout(): number;
get promise(): PromiseUserRequest<Req>;
resolve(response: RequestToResponse<Req>): void;
get reject(): (err: UserRequestError<RequestToResponse<Req>, Req>) => void;
}
//# sourceMappingURL=user-request.d.ts.map