UNPKG

homebridge-am43-blinds-bluez

Version:

A homebridge plugin to control AM43 based shade motors in HomeKit. These include the A OK and Zemismart bluetooth based motors. This plugin requires a Homebridge host that supports Bluetooth 4.0

32 lines (31 loc) 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildCommandBuffer = void 0; const values_1 = require("./values"); const calculateCommandChecksum = (bufferArray) => { let checksum = 0; for (let i = 0; i < bufferArray.length - 1; i++) { checksum = checksum ^ bufferArray[i]; } checksum = checksum ^ 0xff; return checksum; }; const buildCommandBuffer = function (commandID, data) { const bufferArray = new Uint8Array(data.length + 8); const startPackage = values_1.DeviceValues.AM43_COMMAND_PREFIX; for (let index = 0; index < startPackage.length; index++) { bufferArray[index] = startPackage[index]; } bufferArray[5] = commandID; const uIntData = Uint8Array.from(data); bufferArray[6] = uIntData.length; let bufferIndex = 7; for (let index = 0; index < uIntData.length; index++) { bufferArray[bufferIndex] = uIntData[index]; bufferIndex++; } bufferArray[bufferIndex] = calculateCommandChecksum(bufferArray); bufferIndex++; return Buffer.from(bufferArray.buffer); }; exports.buildCommandBuffer = buildCommandBuffer;