knxultimate
Version:
KNX IP protocol implementation for Node. This is the ENGINE of Node-Red KNX-Ultimate node.
49 lines (42 loc) • 1.21 kB
text/typescript
import { KNX_CONSTANTS } from './KNXConstants'
import KNXPacket from './KNXPacket'
import DeviceInfo from './DeviceInfo'
import ServiceFamilies from './ServiceFamilies'
import HPAI from './HPAI'
export default class KNXSearchResponse extends KNXPacket {
hpai: HPAI
deviceInfo: DeviceInfo
serviceFamilies: ServiceFamilies
constructor(
hpai: HPAI,
deviceInfo: DeviceInfo,
serviceFamilies: ServiceFamilies,
) {
super(
KNX_CONSTANTS.SEARCH_RESPONSE,
hpai.length + deviceInfo.length + serviceFamilies.length,
)
this.hpai = hpai
this.deviceInfo = deviceInfo
this.serviceFamilies = serviceFamilies
}
static createFromBuffer(
buffer: Buffer,
offset: number = 0,
): KNXSearchResponse {
const hpai = HPAI.createFromBuffer(buffer, offset)
offset += hpai.length
const deviceInfo = DeviceInfo.createFromBuffer(buffer, offset)
offset += deviceInfo.length
const serviceFamilies = ServiceFamilies.createFromBuffer(buffer, offset)
return new KNXSearchResponse(hpai, deviceInfo, serviceFamilies)
}
toBuffer(): Buffer {
return Buffer.concat([
this.header.toBuffer(),
this.hpai.toBuffer(),
this.deviceInfo.toBuffer(),
this.serviceFamilies.toBuffer(),
])
}
}