klf-200-api
Version: 
This module provides a wrapper to the socket API of a Velux KLF-200 interface. You will need at least firmware 0.2.0.0.71 on your KLF interface for this library to work.
50 lines • 1.93 kB
JavaScript
"use strict";
import { GW_FRAME_NTF } from "./common.js";
import { StatusType, } from "./GW_COMMAND.js";
export class GW_STATUS_REQUEST_NTF extends GW_FRAME_NTF {
    SessionID;
    StatusOwner;
    NodeID;
    RunStatus;
    StatusReply;
    StatusType;
    ParameterData;
    TargetPosition;
    CurrentPosition;
    RemainingTime;
    LastMasterExecutionAddress;
    LastCommandOriginator;
    constructor(Data) {
        super(Data);
        this.SessionID = this.Data.readUInt16BE(0);
        this.StatusOwner = this.Data.readUInt8(2);
        this.NodeID = this.Data.readUInt8(3);
        this.RunStatus = this.Data.readUInt8(4);
        this.StatusReply = this.Data.readUInt8(5);
        this.StatusType = this.Data.readUInt8(6);
        switch (this.StatusType) {
            case StatusType.RequestMainInfo:
                this.TargetPosition = this.Data.readUInt16BE(7);
                this.CurrentPosition = this.Data.readUInt16BE(9);
                this.RemainingTime = this.Data.readUInt16BE(11);
                this.LastMasterExecutionAddress = this.Data.readUInt32BE(13);
                this.LastCommandOriginator = this.Data.readUInt8(17);
                break;
            case StatusType.RequestTargetPosition:
            case StatusType.RequestCurrentPosition:
            case StatusType.RequestRemainingTime:
                const statusCount = this.Data.readUInt8(7);
                this.ParameterData = [];
                for (let statusIndex = 0; statusIndex < statusCount; statusIndex++) {
                    this.ParameterData.push({
                        ID: this.Data.readUInt8(statusIndex * 3 + 8),
                        Value: this.Data.readUInt16BE(statusIndex * 3 + 9),
                    });
                }
                break;
            default:
                throw new Error("Unknown StatusType.");
        }
    }
}
//# sourceMappingURL=GW_STATUS_REQUEST_NTF.js.map