UNPKG

node-red-contrib-clowire

Version:

clowire for node-red

54 lines (45 loc) 1.18 kB
/** * buf数据to对象 * * data 命令缓冲 */ module.exports.buf2obj = function (data, obj) { const protocolData = _protocol(data) if (!protocolData) return null protocolData.uid = obj.entity_id console.log(protocolData) if (obj.uid === protocolData.id && protocolData.address === obj.address) return protocolData else return null } /** * 协议解析0x01,0x20,0x10,0x11,0x00,0x80 {name:"大灯开关",id:1,address:1,cmd:"click",uid:1}, * @param {*} data */ function _protocol(data) { if(!data)return; let obj = {} obj.id = data[0] if (data[5] === 0x80 && data[2] === 0x10) { if (data[1] !== 0x20) return false obj.address = data[3] - 0x10 return obj } return false } /** * obj转buf * @param {*} obj * */ module.exports.obj2buf = function (obj, obj1) { const { entity_id, state } = obj if ( obj1.entity_id === entity_id) { let buf = [obj1.uid, 0x06, 0x10, 0x21, 0x00, 0x00] buf[3] = obj1.address + 0x20 if (state === 'on') buf[5] = 0x01 return buf } else return null }