UNPKG

node-red-contrib-hasskit

Version:

hasskit for node-red

48 lines (41 loc) 1.22 kB
const crc16 = require('../clowire/crc16') const DATA_LENGTH = 10 const fns = { switch: require('./Switch'), climate: require('./Climate') } module.exports = { /** * 收到tcp数据预处理 * @param {*} data */ handleRece: function (data) { if (data.length > DATA_LENGTH) { data = data.slice(-DATA_LENGTH) } else if (data.length < DATA_LENGTH) { return } var crc = crc16(data.slice(0, -2)); if (data.readUInt16LE(data.length - 2, data) === crc) { return data } return }, handle_write: function (buf) { let data = Buffer.from(buf) if (data.length < DATA_LENGTH - 4) return var buffer = Buffer.alloc(data.length + 2); for (let i = 0; i < data.length; i++) { buffer[i] = data[i] } buffer.writeUInt16LE(crc16(data), data.length) console.log(buffer) return buffer }, getObjToBuf: function (domain) { return fns[domain].obj2buf }, getBufToObj: function (domain) { return fns[domain].buf2obj } }