knxultimate
Version:
KNX IP protocol implementation for Node. This is the ENGINE of Node-Red KNX-Ultimate node.
62 lines • 2.07 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../utils");
const node_color_log_1 = __importDefault(require("node-color-log"));
const config = {
id: 'DPT232',
formatAPDU: (value) => {
if (!value) {
node_color_log_1.default.error('cannot write null value');
return null;
}
if (typeof value === 'object' &&
(0, utils_1.hasProp)(value, 'red') &&
value.red >= 0 &&
value.red <= 255 &&
(0, utils_1.hasProp)(value, 'green') &&
value.green >= 0 &&
value.green <= 255 &&
(0, utils_1.hasProp)(value, 'blue') &&
value.blue >= 0 &&
value.blue <= 255) {
return Buffer.from([
Math.floor(value.red),
Math.floor(value.green),
Math.floor(value.blue),
]);
}
node_color_log_1.default.error('Must supply an value {red:0-255, green:0-255, blue:0-255}');
return null;
},
fromBuffer: (buf) => {
if (buf.length !== 3) {
node_color_log_1.default.error('Buffer should be 3 byte long, got', buf.length);
return null;
}
const ret = { red: buf[0], green: buf[1], blue: buf[2] };
return ret;
},
basetype: {
bitlength: 3 * 8,
valuetype: 'basic',
desc: 'RGB array',
help: `// Each color in a range between 0 and 255
msg.payload={red:255, green:200, blue:30};
return msg;`,
helplink: 'https://github.com/Supergiovane/node-red-contrib-knx-ultimate/wiki/-Sample---RGB-Color',
},
subtypes: {
600: {
desc: 'RGB',
name: 'RGB color triplet',
unit: '',
scalar_range: [,],
range: [,],
},
},
};
exports.default = config;
//# sourceMappingURL=dpt232.js.map