inventoresed
Version:
Z-Wave driver written entirely in JavaScript/TypeScript
65 lines (57 loc) • 1.6 kB
text/typescript
import { MessagePriority } from "@zwave-js/core";
import type { ZWaveHost } from "@zwave-js/host";
import {
expectedResponse,
FunctionType,
Message,
MessageBaseOptions,
MessageDeserializationOptions,
MessageType,
messageTypes,
priority,
} from "@zwave-js/serial";
interface SetSerialApiTimeoutsRequestOptions extends MessageBaseOptions {
ackTimeout: number;
byteTimeout: number;
}
export class SetSerialApiTimeoutsRequest extends Message {
public constructor(
host: ZWaveHost,
options: SetSerialApiTimeoutsRequestOptions,
) {
super(host, options);
this.ackTimeout = options.ackTimeout;
this.byteTimeout = options.byteTimeout;
}
public ackTimeout: number;
public byteTimeout: number;
public serialize(): Buffer {
this.payload = Buffer.from([
Math.round(this.ackTimeout / 10),
Math.round(this.byteTimeout / 10),
]);
return super.serialize();
}
}
export class SetSerialApiTimeoutsResponse extends Message {
public constructor(
host: ZWaveHost,
options: MessageDeserializationOptions,
) {
super(host, options);
this._oldAckTimeout = this.payload[0] * 10;
this._oldByteTimeout = this.payload[1] * 10;
}
private _oldAckTimeout: number;
public get oldAckTimeout(): number {
return this._oldAckTimeout;
}
private _oldByteTimeout: number;
public get oldByteTimeout(): number {
return this._oldByteTimeout;
}
}