UNPKG

knxultimate

Version:

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

117 lines 3.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const KnxLog_1 = require("../KnxLog"); const logger = (0, KnxLog_1.module)('DPT7'); const config = { id: 'DPT7', formatAPDU: (value) => { const apdu_data = Buffer.alloc(2); if (!isFinite(value)) { logger.warn('cannot write non-numeric or undefined value'); } else { if (value < 0 || value > 65535) { logger.warn('value must be between 0 and 65535. Auto adjousting.'); if (value < 0) value = 0; if (value > 65535) value = 65535; } apdu_data[0] = value >> 8; apdu_data[1] = value & 0xff; } return apdu_data; }, fromBuffer: (buf) => { if (buf.length !== 2) { logger.warn('fromBuffer: buf should be 2 bytes long (got %d bytes)', buf.length); return null; } return buf[0] * 256 + buf[1]; }, basetype: { bitlength: 16, signedness: 'unsigned', valuetype: 'basic', desc: '16-bit unsigned value', help: `// Send 16-bit unsigned value. If you use time, please be careful in selecting the correct datapoint (ms, 10ms, 100ms, ecc..). msg.payload = 22; return msg;`, }, subtypes: { '001': { use: 'G', name: 'Pulses', desc: 'pulses', unit: 'pulses', }, '002': { use: 'G', name: 'Time (ms)', desc: 'time (ms)', unit: 'milliseconds', }, '003': { use: 'G', name: 'Time (10ms)', desc: 'time (10ms)', unit: 'centiseconds', }, '004': { use: 'G', name: 'Time (100ms)', desc: 'time (100ms)', unit: 'deciseconds', }, '005': { use: 'G', name: 'Time (s)', desc: 'time (s)', unit: 'seconds', }, '006': { use: 'G', name: 'Time (min)', desc: 'time (min)', unit: 'minutes', }, '007': { use: 'G', name: 'Time (hrs)', desc: 'time (hrs)', unit: 'hours', }, '010': { use: 'FB', name: 'Property data type', desc: 'Identifier Interface Object Property data type ', }, '011': { use: 'FB SAB', name: 'Length_mm', desc: 'Length in mm', unit: 'mm', }, '012': { use: 'FB', name: 'Current (mA)', desc: 'bus power supply current (mA)', unit: 'mA', }, '013': { use: 'FB', name: 'Brightness (lux)', desc: 'interior brightness', unit: 'lux', }, 600: { use: 'FB', name: 'Absolute colour temperature (K)', desc: 'absolute colour temperature (K).', unit: 'K', range: [0, 65535], }, }, }; exports.default = config; //# sourceMappingURL=dpt7.js.map