inventoresed
Version:
Z-Wave driver written entirely in JavaScript/TypeScript
55 lines (50 loc) • 1.44 kB
text/typescript
import {
MessageOrCCLogEntry,
MessagePriority,
MessageRecord,
RSSI,
rssiToString,
} from "@zwave-js/core";
import type { ZWaveHost } from "@zwave-js/host";
import {
expectedResponse,
FunctionType,
Message,
MessageDeserializationOptions,
MessageType,
messageTypes,
priority,
} from "@zwave-js/serial";
import { parseRSSI, tryParseRSSI } from "../transport/SendDataShared";
export class GetBackgroundRSSIRequest extends Message {}
export class GetBackgroundRSSIResponse extends Message {
public constructor(
host: ZWaveHost,
options: MessageDeserializationOptions,
) {
super(host, options);
this.rssiChannel0 = parseRSSI(this.payload, 0);
this.rssiChannel1 = parseRSSI(this.payload, 1);
this.rssiChannel2 = tryParseRSSI(this.payload, 2);
}
public readonly rssiChannel0: RSSI;
public readonly rssiChannel1: RSSI;
public readonly rssiChannel2?: RSSI;
public toLogEntry(): MessageOrCCLogEntry {
const message: MessageRecord = {
"channel 0": rssiToString(this.rssiChannel0),
"channel 1": rssiToString(this.rssiChannel1),
};
if (this.rssiChannel2 != undefined) {
message["channel 2"] = rssiToString(this.rssiChannel2);
}
return {
...super.toLogEntry(),
message,
};
}
}