inventoresed
Version:
Z-Wave driver written entirely in JavaScript/TypeScript
49 lines (45 loc) • 1.44 kB
text/typescript
import type { ProtocolType } from "@zwave-js/core";
import { MessagePriority } from "@zwave-js/core";
import type { ZWaveHost } from "@zwave-js/host";
import {
expectedResponse,
FunctionType,
Message,
MessageDeserializationOptions,
MessageType,
messageTypes,
priority,
} from "@zwave-js/serial";
export class GetProtocolVersionRequest extends Message {}
export class GetProtocolVersionResponse extends Message {
public constructor(
host: ZWaveHost,
options: MessageDeserializationOptions,
) {
super(host, options);
this.protocolType = this.payload[0];
this.protocolVersion = [
this.payload[1],
this.payload[2],
this.payload[3],
].join(".");
if (this.payload.length >= 6) {
const appBuild = this.payload.readUInt16BE(4);
if (appBuild !== 0) this.applicationFrameworkBuildNumber = appBuild;
}
if (this.payload.length >= 22) {
const commitHash = this.payload.slice(6, 22);
if (!commitHash.every((b) => b === 0)) {
this.gitCommitHash = commitHash.toString("hex");
}
}
}
public readonly protocolType: ProtocolType;
public readonly protocolVersion: string;
public readonly applicationFrameworkBuildNumber?: number;
public readonly gitCommitHash?: string;
}