knxultimate
Version:
KNX IP protocol implementation for Node. This is the ENGINE of Node-Red KNX-Ultimate node.
117 lines • 3.26 kB
JavaScript
;
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