UNPKG

knxultimate

Version:

KNX IP protocol implementation for Node. This is the ENGINE of Node-Red KNX-Ultimate node.

41 lines (35 loc) 1.12 kB
import { KNX_CONSTANTS } from './KNXConstants' import KNXPacket from './KNXPacket' import DeviceInfo from './DeviceInfo' import ServiceFamilies from './ServiceFamilies' export default class KNXDescriptionResponse extends KNXPacket { deviceInfo: DeviceInfo serviceFamilies: ServiceFamilies constructor(deviceInfo: DeviceInfo, serviceFamilies: ServiceFamilies) { super( KNX_CONSTANTS.DESCRIPTION_RESPONSE, deviceInfo.length + serviceFamilies.length, ) this.deviceInfo = deviceInfo this.serviceFamilies = serviceFamilies } static createFromBuffer( buffer: Buffer, offset: number = 0, ): KNXDescriptionResponse { if (offset + this.length >= buffer.length) { throw new Error('Buffer too short') } const deviceInfo = DeviceInfo.createFromBuffer(buffer, offset) offset += deviceInfo.length const serviceFamilies = ServiceFamilies.createFromBuffer(buffer, offset) return new KNXDescriptionResponse(deviceInfo, serviceFamilies) } toBuffer(): Buffer { return Buffer.concat([ this.header.toBuffer(), this.deviceInfo.toBuffer(), this.serviceFamilies.toBuffer(), ]) } }