UNPKG

@chvdapi/node-red-dlt645

Version:

a node communicate with DLT645-2007 electric energy meter

55 lines (52 loc) 1.67 kB
const dlt645 = require('./build/Release/dlt645') module.exports = function(RED) { function PN6400_DLT645(config) { RED.nodes.createNode(this,config); var node = this; var item = 0; var address = "AAAAAAAAAAAA";//defalut broadCast //console.log("path:%s\n" ,config.serialport); var instructionName = config.instruction; switch (instructionName ) { case "energy": item = 1; break; case "current": item = 2; break; case "voltage": item = 3; break; case "power": item = 4; break; case "factor": item = 5; break; case "frequence": item = 6; break; case "reactivePower": item = 7; break; } if(config.useSelfAddress == true){//unicast address = config.selfDefAddress; //console.log("unicast address = %s" , address );// } else{ //console.log("broadCastaddress = %s" , address );//broadCast } node.on('input', function(msg) { var value = dlt645.readItem(item, config.baudRate, address , config.serialport); value = Math.floor(value * 1000) / 1000; msg.payload = { "item": instructionName , "value" : value } node.send(msg); }); } RED.nodes.registerType("PN6400_DLT645",PN6400_DLT645); }