UNPKG

hap-controller

Version:

Library to implement a HAP (HomeKit) controller

171 lines 6.23 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const GattConstants = __importStar(require("./gatt-constants")); const tlv_1 = require("../../model/tlv"); class BLEProtocol { buildCharacteristicSignatureReadRequest(tid, iid) { const buf = Buffer.alloc(5); buf.writeUInt8(GattConstants.Opcodes['HAP-Characteristic-Signature-Read'], 1); buf.writeUInt8(tid, 2); buf.writeUInt16LE(iid, 3); return buf; } parseCharacteristicSignatureReadResponse(buf) { return { controlField: buf.readUInt8(0), tid: buf.readUInt8(1), status: buf.readUInt8(2), length: buf.readUInt16LE(3), tlv: (0, tlv_1.decodeBuffer)(buf.slice(5, buf.length)), }; } buildCharacteristicWriteRequest(tid, iid, tlv) { let body; if (Buffer.isBuffer(tlv)) { body = tlv; } else { body = (0, tlv_1.encodeObject)(tlv); } const buf = Buffer.alloc(7 + body.length); buf.writeUInt8(GattConstants.Opcodes['HAP-Characteristic-Write'], 1); buf.writeUInt8(tid, 2); buf.writeUInt16LE(iid, 3); buf.writeUInt16LE(body.length, 5); body.copy(buf, 7); return buf; } parseCharacteristicWriteResponse(buf) { return { controlField: buf.readUInt8(0), tid: buf.readUInt8(1), status: buf.readUInt8(2), }; } buildCharacteristicReadRequest(tid, iid) { const buf = Buffer.alloc(5); buf.writeUInt8(GattConstants.Opcodes['HAP-Characteristic-Read'], 1); buf.writeUInt8(tid, 2); buf.writeUInt16LE(iid, 3); return buf; } parseCharacteristicReadResponse(buf) { return { controlField: buf.readUInt8(0), tid: buf.readUInt8(1), status: buf.readUInt8(2), length: buf.readUInt16LE(3), tlv: (0, tlv_1.decodeBuffer)(buf.slice(5, buf.length)), }; } buildCharacteristicTimedWriteRequest(tid, iid, tlv) { const body = (0, tlv_1.encodeObject)(tlv); const buf = Buffer.alloc(7 + body.length); buf.writeUInt8(GattConstants.Opcodes['HAP-Characteristic-Timed-Write'], 1); buf.writeUInt8(tid, 2); buf.writeUInt16LE(iid, 3); buf.writeUInt16LE(body.length, 5); body.copy(buf, 7); return buf; } parseCharacteristicTimedWriteResponse(buf) { return { controlField: buf.readUInt8(0), tid: buf.readUInt8(1), status: buf.readUInt8(2), }; } buildCharacteristicExecuteWriteRequest(tid, iid) { const buf = Buffer.alloc(5); buf.writeUInt8(GattConstants.Opcodes['HAP-Characteristic-Execute-Write'], 1); buf.writeUInt8(tid, 2); buf.writeUInt16LE(iid, 3); return buf; } parseCharacteristicExecuteWriteResponse(buf) { return { controlField: buf.readUInt8(0), tid: buf.readUInt8(1), status: buf.readUInt8(2), }; } buildServiceSignatureReadRequest(tid, sid) { const buf = Buffer.alloc(5); buf.writeUInt8(GattConstants.Opcodes['HAP-Service-Signature-Read'], 1); buf.writeUInt8(tid, 2); buf.writeUInt16LE(sid, 3); return buf; } parseServiceSignatureReadResponse(buf) { return { controlField: buf.readUInt8(0), tid: buf.readUInt8(1), status: buf.readUInt8(2), length: buf.readUInt16LE(3), tlv: (0, tlv_1.decodeBuffer)(buf.slice(5, buf.length)), }; } buildCharacteristicConfigurationRequest(tid, iid, tlv) { const body = (0, tlv_1.encodeObject)(tlv); const buf = Buffer.alloc(7 + body.length); buf.writeUInt8(GattConstants.Opcodes['HAP-Characteristic-Configuration'], 1); buf.writeUInt8(tid, 2); buf.writeUInt16LE(iid, 3); buf.writeUInt16LE(body.length, 5); body.copy(buf, 7); return buf; } parseCharacteristicConfigurationResponse(buf) { return { controlField: buf.readUInt8(0), tid: buf.readUInt8(1), status: buf.readUInt8(2), length: buf.readUInt16LE(3), tlv: (0, tlv_1.decodeBuffer)(buf.slice(5, buf.length)), }; } buildProtocolConfigurationRequest(tid, svcID, tlv) { const body = (0, tlv_1.encodeObject)(tlv); const buf = Buffer.alloc(7 + body.length); buf.writeUInt8(GattConstants.Opcodes['HAP-Protocol-Configuration'], 1); buf.writeUInt8(tid, 2); buf.writeUInt16LE(svcID, 3); buf.writeUInt16LE(body.length, 5); body.copy(buf, 7); return buf; } parseProtocolConfigurationResponse(buf) { return { controlField: buf.readUInt8(0), tid: buf.readUInt8(1), status: buf.readUInt8(2), length: buf.readUInt16LE(3), tlv: (0, tlv_1.decodeBuffer)(buf.slice(5, buf.length)), }; } } exports.default = BLEProtocol; //# sourceMappingURL=gatt-protocol.js.map